package cn.yitun.chat.yitunserverimcore.general.main.biz.chat.manager;//package com.oim.server.general.main.business.chat.manager;
//
//import java.sql.Timestamp;
//import java.util.ArrayList;
//import java.util.List;
//
//import javax.annotation.Resource;
//
//import org.springframework.stereotype.Service;
//import org.springframework.transaction.annotation.Transactional;
//
///**
// * 
// * @author yitun
// * @date 2017-11-26 13:01:51
// *
// */
//@Service
//public class UserLastChatManager {
//
//	@Resource
//	UserChatDAO userChatDAO;
//	@Resource
//	UserLastChatDAO userLastChatDAO;
//
//	@Transactional
//	public void addUserChatHistory(
//			boolean isSend,
//			UserData sendUserData,
//			UserData receiveUserData,
//			String messageKey,
//			List<ChatItem> chatItemList,
//			long timestamp) {
//		messageKey = (null == messageKey || "".equals(messageKey)) ? IdGen.getNumberStr() : messageKey;
//		UserChatContent content = createUserChatContent(isSend, messageKey, sendUserData, receiveUserData, timestamp);
//		userChatDAO.save(content);
//		List<UserChatItem> list = new ArrayList<UserChatItem>();
//		for (ChatItem item : chatItemList) {
//			UserChatItem chatLog = new UserChatItem();
//			chatLog.setMessageKey(messageKey);
//			chatLog.setContentId(content.getId());
//			chatLog.setSendUserId(content.getSendUserId());
//			chatLog.setReceiveUserId(content.getReceiveUserId());
//			chatLog.setRank(item.getRank());
//			chatLog.setSection(item.getSection());
//			chatLog.setType(item.getType());
//			chatLog.setValue(item.getValue());
//			chatLog.setFilterValue(item.getFilterValue());
//			list.add(chatLog);
//		}
//		userChatDAO.saveList(list);
//		String sendId = sendUserData.getId();
//		String receiveId = receiveUserData.getId();
//		UserLastChat userLastChat1 = createUserLastChat(messageKey, content.getId(), sendId, receiveId, UserLastChat.TYPE_USER);
//		saveOrUpdateLast(userLastChat1);
//
//		if (!sendId.equals(receiveId)) {
//			UserLastChat userLastChat2 = createUserLastChat(messageKey, content.getId(), receiveId, sendId, UserLastChat.TYPE_USER);
//			saveOrUpdateLast(userLastChat2);
//		}
//	}
//
//	private UserChatContent createUserChatContent(boolean isSend, String messageKey, UserData sendUserData, UserData receiveUserData, long timestamp) {
//		UserChatContent chatLog = new UserChatContent();
//		chatLog.setMessageKey(messageKey);
//		chatLog.setIsDeleted(0);
//		chatLog.setIsSend(isSend ? "1" : "0");
//
//		chatLog.setReceiveUserHead(receiveUserData.getHead());
//		chatLog.setReceiveUserAvatar(receiveUserData.getAvatar());
//		chatLog.setReceiveUserId(receiveUserData.getId());
//		chatLog.setReceiveUserName(receiveUserData.getName());
//		chatLog.setReceiveUserNickname(receiveUserData.getNickname());
//		// chatLog.setReceiveUserRole(receiveUserRole);
//
//		chatLog.setSendUserHead(sendUserData.getHead());
//		chatLog.setSendUserAvatar(sendUserData.getAvatar());
//		chatLog.setSendUserId(sendUserData.getId());
//		chatLog.setSendUserName(sendUserData.getName());
//		chatLog.setSendUserNickname(sendUserData.getNickname());
//		chatLog.setSendUserRemark("");
//
//		chatLog.setDateTime(new Timestamp(timestamp));
//		chatLog.setTimestamp(timestamp);
//		return chatLog;
//	}
//
//	private UserLastChat createUserLastChat(String messageKey, String contentId, String userId, String chatId, String type) {
//
//		long timestamp = System.currentTimeMillis();
//
//		UserLastChat bean = new UserLastChat();
//		bean.setChatId(chatId);
//		bean.setContentId(contentId);
//		bean.setMessageKey(messageKey);
//		bean.setDateTime(new Timestamp(timestamp));
//		bean.setTimestamp(timestamp);
//		bean.setType(type);
//		bean.setUserId(userId);
//		return bean;
//	}
//
//	private void saveOrUpdateLast(UserLastChat userLastChat) {
//		saveOrUpdate(userLastChat);
//	}
//
//	public void saveOrUpdate(UserLastChat userLastChat) {
//		UserLastChat bean = userLastChatDAO.getUserLastChat(userLastChat.getUserId(), userLastChat.getChatId(), userLastChat.getType());
//		if (null != bean) {
//			long timestamp = System.currentTimeMillis();
//			bean.setMessageKey(userLastChat.getMessageKey());
//			bean.setDateTime(new Timestamp(timestamp));
//			bean.setTimestamp(timestamp);
//			bean.setContentId(userLastChat.getContentId());
//			userLastChatDAO.update(bean);
//		} else {
//			userLastChatDAO.save(userLastChat);
//		}
//	}
//}
